#-*- coding:utf-8 -*-

import time      #time包引入，主要是进行计算运行时间
import ScanPort  #ScanPort类，主要的类
import gl        #全局变量全部放入gl 包中




if __name__ == '__main__':

    scan = []
    #--------------------------- 接收扫描信息 ---------------------------
    ip=input('输入要扫描的IP:')     #这一部分得重写，写的太烂了
    threadnum = input('启动线程:')
    threadnum = int(threadnum)
    timeout = input(r'请输入延迟，采用默认输入0:')
    timeout = float(timeout)
    sumnum = gl.portnum//threadnum
    if timeout == 0:   
        print('您没有设置延迟，我们将采用默认的0.1')
        timeout = 0.1

    startport = 0
    endport = sumnum

    starttime = time.time()#记录启动时间
    for i in range(0,threadnum):
        scan.append(ScanPort.ScanPort(ip,startport,endport,timeout))
        #初始化多线程，并放入scan列表中
        scan[i].start()
        #启动多线程
        startport = endport+1 #进行端口计算
        endport = endport+sumnum #进行叠加端口计算

    for i in range(0,threadnum):
        scan[i].join()      #进行线程等待，只有线程结束才会向下执行
    endtime = time.time()#记录结束时间

    if not gl.openport:
        print('没有开放的端口,可能因为延迟设置的太低了，可以酌情增加')
    else:
        print('开放端口',gl.openport)
    print("用时%d秒，一共扫描了%d个端口" % ((endtime-starttime),gl.portnum))
